/* 
联合类型（Union Types）表示取值可以为多种类型中的一种。
*/
(() => {
  let c: number|string = 3
  c = 'abc' 
  // c = true  // error

  // 需求1: 定义一个一个函数得到一个数字或字符串值的字符串形式值
  function toString(value: number|string): string {
    return value.toString()
  }

  console.log(toString(123))
  console.log(toString('abcd'))
  // console.log(toString({})) // error

  // 需求2: 定义一个一个函数得到一个数字或字符串值的长度
  /* function getLength(value: number|string): number {
    // return value.length // number没有length
    if (value.length) {
      return value.length
    } else {
      return value.toString().length
    }
  } */
})()